package com.xbongbong.saas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.message.pojo.dto.ConsistencySyncRabbitMqDTO;
import com.xbongbong.pro.message.pojo.vo.ConsistencySyncRabbitMqVO;

/**
 * 数据一致性 service
 * @author 魏荣杰
 * @date 2019/6/11 11:04
 * @since v1.0
 * @version v1.0
 */
public interface ConsistencySyncService {

    /**
     * Description: 同步 客户 数据
     * @param consistencySyncRabbitMqDTO
     * @author 魏荣杰
     * @date 2019/6/11 11:06
     * @since v1.0
     */
    ConsistencySyncRabbitMqVO syncCustomer(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;
    /**
     * Description: 同步 联系人 数据
     * @param consistencySyncRabbitMqDTO
     * @author 魏荣杰
     * @date 2019/6/11 11:06
     * @since v1.0
     */
    ConsistencySyncRabbitMqVO syncContact(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;
    /**
     * Description: 同步 合同 数据
     * @param consistencySyncRabbitMqDTO
     * @author 魏荣杰
     * @date 2019/6/11 11:06
     * @since v1.0
     */
    ConsistencySyncRabbitMqVO syncContract(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;
    /**
     * Description: 同步 机会 数据
     * @param consistencySyncRabbitMqDTO
     * @author 魏荣杰
     * @date 2019/6/11 11:06
     * @since v1.0
     */
    ConsistencySyncRabbitMqVO syncOpportunity(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;
    /**
     * Description: 同步 产品 数据
     * @param consistencySyncRabbitMqDTO
     * @author 魏荣杰
     * @date 2019/6/11 11:06
     * @since v1.0
     */
    ConsistencySyncRabbitMqVO syncProduct(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;
    /**
     * Description: 同步 用户 数据
     * @param consistencySyncRabbitMqDTO
     * @author 魏荣杰
     * @date 2019/6/11 11:06
     * @since v1.0
     */
    ConsistencySyncRabbitMqVO syncUser(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    /**
     * Description: 同步 供应商 数据
     * @author 吴峰
     * @date 2019/6/20 10:47
     * @param consistencySyncRabbitMqDTO
     * @return com.xbongbong.pro.message.pojo.vo.ConsistencySyncRabbitMqVO
     * @throws XbbException 业务异常
     */
    ConsistencySyncRabbitMqVO syncSupplier(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    /**
     * Description: 同步 仓库
     * @param consistencySyncRabbitMqDTO
     * @return com.xbongbong.pro.message.pojo.vo.ConsistencySyncRabbitMqVO
     * @throws
     * @author 魏荣杰
     * @date 2019/8/5 9:20
     * @since v1.0
     */
    ConsistencySyncRabbitMqVO syncWarehouse(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    /**
     * Description: 同步 报价单
     * @param consistencySyncRabbitMqDTO
     * @return com.xbongbong.pro.message.pojo.vo.ConsistencySyncRabbitMqVO
     * @throws
     * @author long.rao
     * @date 2019-09-10 15:12
     */
    ConsistencySyncRabbitMqVO syncQuotation(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    /**
     * Description: 同步 采购合同
     * @param consistencySyncRabbitMqDTO
     * @return com.xbongbong.pro.message.pojo.vo.ConsistencySyncRabbitMqVO
     * @throws
     * @author jyh
     * @date 2019-11-27 15:06
     */
    ConsistencySyncRabbitMqVO syncPurchase(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    /**
     * Description: 同步 付款计划
     * @param consistencySyncRabbitMqDTO
     * @return com.xbongbong.pro.message.pojo.vo.ConsistencySyncRabbitMqVO
     * @throws
     * @author jyh
     * @date 2019-11-27 15:06
     */
    ConsistencySyncRabbitMqVO syncPayment(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    /**
     * Description: 同步 付款计划
     * @param consistencySyncRabbitMqDTO
     * @return com.xbongbong.pro.message.pojo.vo.ConsistencySyncRabbitMqVO
     * @throws
     * @author jyh
     * @date 2019-11-27 15:06
     */
    ConsistencySyncRabbitMqVO syncPayPlan(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    ConsistencySyncRabbitMqVO syncBatchFlowBill(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    ConsistencySyncRabbitMqVO syncMarketActivity(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    ConsistencySyncRabbitMqVO syncClue(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    ConsistencySyncRabbitMqVO syncSeqSearch(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    /**
     * 同步竞争对手
     * date: 2022/9/9 3:17 下午
     * @author yingjf
     * @param consistencySyncRabbitMqDTO:
     */
    ConsistencySyncRabbitMqVO syncCompetitor(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    /**
     * 同步销项发票
     * @param consistencySyncRabbitMqDTO:
     */
    ConsistencySyncRabbitMqVO syncInvoice(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;

    /**
     * 同步销售出库单
     *
     * @param consistencySyncRabbitMqDTO
     * @return
     */
    ConsistencySyncRabbitMqVO syncContractOutStock(ConsistencySyncRabbitMqDTO consistencySyncRabbitMqDTO) throws XbbException;
}
